从 Airflow 到 Apache DolphinScheduler,有赞大数据开发平台的调度系统演进
点击上方
在不久前的 Apache DolphinScheduler Meetup 2021 上,有赞大数据开发平台负责人 宋哲琦 带来了平台调度系统从 Airflow 迁移到 Apache DolphinScheduler 的方案设计思考和生产环境实践。
这位来自浙江杭州的 90 后年轻人自 2019 年 9 月加入有赞,在这里从事数据开发平台、调度系统和数据同步组件的研发工作。刚入职时,有赞使用的还是同为 Apache 开源项目的 Airflow,但经过调研和生产环境测试,有赞决定切换到 DolphinScheduler。
有赞大数据开发平台如何利用调度系统?为什么决定重新选型为 Apache DolphinScheduler ?让我们跟着他的分享来一探究竟。
01
有赞大数据开发平台(DP平台)
1
调度层架构设计
2
Worker节点负载均衡策略
02
调度系统升级选型
1
Airflow 的痛点
深度二次开发,脱离社区版本,升级成本高;
Python 技术栈,维护迭代成本高;
性能问题:
1
DolphinScheduler 价值评估
如上图所示,经过对 DolphinScheduler 价值评估,我们发现其在相同的条件下,吞吐性能是原来的调度系统的 2 倍,而 2.0 版本后 DolphinScheduler 的性能还会有更大幅度的提升,这一点让我们非常兴奋。
此外,在部署层面,DolphinScheduler 采用的 Java 技术栈有利于ops标准化部署流程,简化发布流程、解放运维人力,且支持Kubernetes、Docker 部署,扩展性更强。
03
DolphinScheduler 接入方案设计
用户使用无感知,平台目前的用户数有 700-800,使用密度大,希望可以降低用户切换成本;
调度系统可动态切换,生产环境要求稳定性大于一切,上线期间采用线上灰度的形式,希望基于工作流粒度,实现调度系统动态切换;
测试与发布的工作流配置需隔离,目前任务测试和发布有两套配置文件通过 GitHub维护,线上调度任务配置需要保证数据整个确性和稳定性,需要两套环境进行隔离。
1
架构设计
保留现有前端界面与DP API;
重构调度管理界面,原来是嵌入 Airflow 界面,后续将基于 DolphinScheduler 进行调度管理界面重构;
任务生命周期管理/调度管理等操作通过 DolphinScheduler API 交互;
利用 Project 机制冗余工作流配置,实现测试、发布的配置隔离。
工作流定义状态梳理
任务执行流程改造
工作流发布流程改造
2
功能补全
任务类型适配
3
改造进度
4
功能补齐
Catchup 机制实现调度自动回补
图1
跨 Dag 全局补数
04
现状&规划&展望
1
DolphinScheduler 接入现状
2
接入规划
3
对 DolphinScheduler 的期待
希望 DolphinScheduler 插件化的脚步可以更快一些,以更好地快速适配我们的定制化任务类型。
——有赞大数据开发平台负责人 宋哲琦
”
05
参与贡献
参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:
贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。
社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689
非新手问题列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22
如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/docs/development/contribute.html
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。
参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手
微信(Leonard-ds) 手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。添加小助手微信时请说明想参与贡献。
来吧,开源社区非常期待您的参与。
https://dolphinscheduler.apache.org/
(Leonard-ds)
☞在生鲜零售业,DolphinScheduler 还能这么玩!
☞4 亿用户,7W+ 作业调度难题,Bigo 基于 Apache DolphinScheduler 巧化解
☞荔枝机器学习平台与大数据调度系统“双剑合璧”,打造未来数据处理新模式!
☞看到社区代码不规范,强迫症的我顺手就给格式化了!
☞最佳实践|联通数科基于 DolphinScheduler 的二次开发
☞DolphinScheduler 荣获 2021 中国开源云联盟优秀开源项目奖!
☞重构、插件化、性能提升 20 倍,Apache DolphinScheduler 2.0 alpha 发布亮点太多!
☞巨变!a16z 关于新一代数据基础设施架构的深度洞察
☞手把手教你 Apache DolphinScheduler 本地开发环境搭建 | 中英文视频教程
点击阅读原文,加入开源!
点个在看你最好看